package 简单.贪心思想;

/**
 * 给你一个字符串 s ，由 n 个字符组成，每个字符不是 'X' 就是 'O' 。
 * 一次 操作 定义为从 s 中选出 三个连续字符 并将选中的每个字符都
 * 转换为 'O' 。注意，如果字符已经是 'O' ，只需要保持 不变 。
 * 返回将 s 中所有字符均转换为 'O' 需要执行的 最少 操作次数。
 * <p>
 * 来源：力扣（LeetCode）
 * 链接：https://leetcode.cn/problems/minimum-moves-to-convert-string
 */
public class 转换字符串的最少操作次数_2027 {

    public static void main(String[] args) {

    }

    /**
     * 每次只选择以 X 开头以及后面相邻的2个字符
     */
    public int minimumMoves(String s) {
        int count = 0;
        int left = 0;
        while (left < s.length()) {
            while (left < s.length() && s.charAt(left) == 'O') {
                left++;
            }

            if (left < s.length()) {
                count++;
            }
            left += 3;
        }

        return count;
    }

}
